package com.ctshk.rpc.custom.req.quotation;

import com.ctshk.rpc.custom.req.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 报价单
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-01-16
 */
@Data
@ApiModel(value="QuotationReq", description="报价单")
public class QuotationReq implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long id;

    @ApiModelProperty(value = "业务类型(3出境定制 4入境定制 5會議會獎)")
    private Integer departType;

    /**
     * 报价基本信息 start
     */
    @NotBlank(message = "请输入报价标题")
    @ApiModelProperty(value = "报价标题", required = true)
    private String quotationTitle;

    @ApiModelProperty(value = "报价说明")
    private String instruction;
    /**
     * 报价基本信息 end
     */

    /**
     * 询价单相关信息(不传则表示该报价单为无询价单报价) start
     */
    @ApiModelProperty(value = "询价单ID")
    private Long inquiryId;
    /**
     * 询价单相关信息 start
     */

    /**
     * 客户信息 (当是无询价单报价时则会有客户信息) start
     */
    @ApiModelProperty(value = "客户类型")
    private CustomerTypeReq customerTypeReq;

    @ApiModelProperty(value = "联络人")
    private ContactReq contactReq;

    @ApiModelProperty(value = "联络人性别")
    private Long contactGender;

    @ApiModelProperty(value = "联络电话区号")
    private Long contactTelAreaCode;

    @ApiModelProperty(value = "联络电话")
    private String contactTelephones;

    @ApiModelProperty(value = "联系邮箱")
    private String contactEmail;

    @ApiModelProperty(value = "内部备注")
    private String internalRemark;
    /**
     * 客户信息 data end
     */

    /**
     * 需求报价相关信息 start
     */
    @NotNull(message = "请选择报价方式")
    @ApiModelProperty(value = "报价方式(1 自由报价	2 行程报价)", required = true)
    private Integer quotationType;

    @ApiModelProperty(value = "团费类型(	1 人均	2 服务费)")
    private Integer groupFeeType;

    @ApiModelProperty(value = "旅客人数数组-行程报价套餐里面的旅客")
    private List<QuotationTouristTypeReq> touristTypes;

    @ApiModelProperty(value = "自由报价套餐数组")
    private List<FreeQuoteReqPackageReq> reqPackages;

    @ApiModelProperty(value = "行程报价套餐数组")
    private List<TripQuoteReq> tripQuoteReqs;
    /**
     * 需求报价相关信息 start
     */

    /**
     * 代收费用 start
     */
    @ApiModelProperty(value = "代收费用数组")
    private List<CollectionFeeReq> collectionFees;

    /**
     * 代收费用 end
     */

}
